home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / TUTORIAL / 1307B.ZIP / OPAQUETY.MOD < prev    next >
Text File  |  1989-01-18  |  1KB  |  41 lines

  1.                                    (* Chapter 13 - Program 8 *)
  2. IMPLEMENTATION MODULE OpaqueType;
  3.  
  4. FROM Storage IMPORT ALLOCATE;
  5. FROM SYSTEM  IMPORT TSIZE;
  6.  
  7.    TYPE BoxStyle = RECORD
  8.                       Length : CARDINAL;
  9.                       Width  : CARDINAL;
  10.                       Height : CARDINAL;
  11.                    END;
  12.  
  13.         BoxType = POINTER TO BoxStyle;
  14.  
  15.    PROCEDURE MakeBox(Length, Width, Height : CARDINAL) : BoxType;
  16.       VAR TempBox : BoxType;
  17.    BEGIN
  18.       ALLOCATE(TempBox,TSIZE(BoxStyle));
  19.       TempBox^.Length := Length;
  20.       TempBox^.Width  := Width;
  21.       TempBox^.Height := Height;
  22.       RETURN TempBox;
  23.    END MakeBox;
  24.  
  25.  
  26.    PROCEDURE Volume(Box : BoxType) : CARDINAL;
  27.    BEGIN
  28.       RETURN Box^.Length * Box^.Width * Box^.Height;
  29.    END Volume;
  30.  
  31.  
  32.    PROCEDURE Area(Box : BoxType) : CARDINAL;
  33.    BEGIN
  34.       RETURN 2 * (Box^.Length * Box^.Width  +
  35.                   Box^.Length * Box^.Height +
  36.                   Box^.Width  * Box^.Height);
  37.    END Area;
  38.  
  39. END OpaqueType.
  40.  
  41.